The presently disclosed system and method relate generally to dynamic rendering of a document in a display, and more particularly to dynamically rendering the document with a content being presented in a selected language.
A widely employed network communication topography provides for a client and a server to interact to exchange information. In such an architecture, the client typically requests data from the server in the form of a document that can be transmitted over a communication link between the client and the server. Accordingly, the document is preferably, but not necessarily, electronic in form and can be constructed with one or more pages, or a portion of one or more pages, as a web page, a message providing information to the user of the user interface, and any other type of representation of information. For example, a document can be implemented as a web page constructed with HTML and scripting code and having media components with labels, tags, text boxes, menus, text, audio, image, video, symbolic, iconic or representative content, or any other type of media representation, including components or controls for the media representations. As used herein, the term document encompasses all media types, such as those mentioned above as well as other well known types, and provides a representation of media content that can be stored or presented with a user interface.
The request from the client is processed at the server, which responds by sending data to the client in the form of an electronic document. A common protocol for the exchange and transport of information between the client and the server is a hypertext transfer protocol (HTTP) that is deployed on top of a transmission control protocol/internet protocol (TCP/IP). HTTP-based transfers typically include parameters that define the data involved in the exchange, while TCP/IP provides for the control of packets of data exchanged between the client and the server.
The client typically has a user interface with a display, upon which the document transferred from the server may be displayed. The document may be rendered on the display within a web browser using hypertext markup language (HTML) code, style sheets, scripts and/or extended markup language (XML) code, collectively referred to hereinafter as rendering instructions. The web browser operates to read and/or execute rendering instructions to render the document on the display. The rendering instructions may include content, such as language-related content, that is stored, processed, manipulated or displayed by the user interface. As used herein, language-related content is meant to indicate any type of media provided in conjunction with the document, in which a user's language may make the content meaningful to the user. As an example, language-related content may be text used in constructing the document, such as menu text, text for labels, headings, buttons, check boxes, text for help or information pop-up boxes, or for any other type of control or presented information in the display using text. Language-related content is also meant to encompass all media representations that may be found in the document, including such examples as alphanumeric characters, symbols, icons, indicators, indicia, audio, images, video, formatting instructions, such as left-to-right or right-to-left text orientation, formatting queues, tactile media representations, or any other type of information that can be represented in document media that is meaningful to the user in the context of the user's language.
One challenge in rendering a document in a display is presented when different languages are to be represented by the language-related content provided in the rendering instructions. That is, if a document rendered in a display is to be presented in different languages, difficulties arise in translating all the language-related content items provided in the document for display. The document in general may be presented in a large variety of languages, with each different language being supported through the implementation of a different document that can be selectively presented by the browser in the user interface. For example, each document may have labels, instructions, values, help text and other language-related content that is provided in a unique language, so that each document version formed in a different language becomes a unique document.
Accordingly, a new document is generated for each language that is added to the set of available languages from which the user may select. The maintenance and administration of a large of number of separate documents that are to be provided to a user interface in dependence upon a language selection can be daunting. In some cases, a document can represent a certain configuration in relation to a service or product available through a server. If the service or product for which the document is constructed is changed in content or scope, each individual document in each language is modified to reflect the change. Thus, even a simple update to a service or product for which the document is provided represents a large scale effort in modifying and coordinating documents with a wide variety of language-related content that may be impacted by the change. Such an arrangement for providing language dependent documents to a user interface based on a configuration of a server or product is unwieldy and may limit the usefulness of providing different language representations of the document. For example, maintaining a number of different documents based on language differences can be challenging for consistent version control.
A number of advantages and conveniences can be obtained for manufacturers, administrators and users of products that are generally accessible through a network. For example, it may be advantageous and convenient to implement a server within a unit of a given product, where information concerning the product can be made available over an internet connection, for example. Access to the unit can be obtained through the server, for such purposes as configuring various settings or querying various parameters within the unit. When the product is distributed on a wide geographical basis, such as world-wide, a user seeking access to a given unit can be provided with a document through the server embedded in the unit, such document describing the configuration of the unit and permitting the user to install, configure or update the unit, for example. It is highly advantageous to permit a user to administer a given unit as described above on a remote basis, such as through an internet connection with the server embedded in the unit. However, a document provided to the user should provide the unit information in a language and representation that is suitable for the user. When multiple different languages are to be supported by documents available from the server to permit administrative interaction between the unit and the user, the above-described issues and challenges in relation to language-specific documents are typically encountered.
Such a product as described above may be implemented in the form of a gateway, which is a telecommunications device serving as a network node to provide translation or mapping of protocols between different networks, such as between a traditional telephone network and a voice over IP (VoIP) network. An example of such a gateway is the Dialogic 1000 Media Gateway series or the Dialogic 2000 Media Gateway series, which are commercially available from Dialogic Corporation of Montreal, Quebec, Canada.
Referring to FIG. 1, a diagram of a conventional client-server system 100 is illustrated in which a client 102 interacts with a server 112 to exchange information. In system 100, a unit 114 that is representative of a product, such as the above described gateway, includes server 112 as an embedded device. Server 112 includes XML code 116, HTML code 118 and scripting code 120 that can be used to respond to a request from client 102 over network link 110, which can provide connectivity for an HTTP transfer using TCP/IP, as discussed above. System 100 typically operates by having a user interface 104 submit a request to server 112 through a browser 106. Server 112 responds with XML code 116, HTML code 118 and/or scripting code 120, or with documents 111, which may contain XML, HTML or scripting code as well.
Conventionally, documents 111 are provided to browser 106 upon request, and contain information concerning unit 114 to permit a user to interact with and administer unit 114, as discussed above. Documents 111 may be provided to have a unique copy for each supported language that is desired by purchasers, administrators or users of unit 114 in general. A user accessing a language-specific document from documents 111 selects a language and receives the appropriate language-specific document in browser 106.
FIG. 2 illustrates a conventional request/response diagram 200 that shows the process of requesting and receiving a document in an exchange between a client 202 and a server 212. The process operates by a user first requesting a page, or a document, from server 212 in an event 204. A request 206 is generated to server 212. Upon receipt of request 206, server 212 loads the desired page, or document, from storage in event 214. Server 212 then provides a response 216 to client 202 in which the requested page, or document, is transferred to client 202. Upon receipt by client 202, the page, or document, is rendered in a user interface, as shown at event 208.
As part of request 206, the user may specify a particular language in which the requested document should be rendered within browser 106. If the configuration of unit 114 is modified, such as by a new installation, a configuration modification or update to unit 114, documents 111 are updated to also reflect changes to the configuration of unit 114. If not updated to track changes to unit 114, documents 111 may provide incorrect or incomplete information concerning unit 114. Accordingly, each document that is modified may have a number of language-specific document permutations in documents 111 that are also reconfigured and potentially created anew if significant changes are implemented to the configuration of unit 114. Examples of modifications to the configuration of unit 114 include instances where new parameters are available, information is stored in a different location than previously expected, new data structures or controls are introduced, or any other type of configuration change that calls for modification to documents 111. To properly maintain support for a number of different languages, all the language-specific items in documents 111 are modified to reflect changes to each of the base documents for the configuration changes to unit 114 to maintain consistent administrative access to unit 114 across the different supported languages. As discussed above, the exercise of modifying documents 111 to correspond with configuration changes in unit 114 occurs even if the changes to unit 114 are small in number or effect. Such an arrangement can be unwieldy and problematic, also as discussed above.